package com.jx.flowershopmanager.api;

import com.jx.flowershopmanager.entity.User;
import com.jx.flowershopmanager.model.BaseResult;
import com.jx.flowershopmanager.model.Category;
import com.jx.flowershopmanager.model.Flowers;
import com.jx.flowershopmanager.model.SalesRecord;

import java.util.HashMap;

import retrofit2.Call;
import retrofit2.http.DELETE;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.PartMap;

public interface FlowerService {


    // 如果后端是@RequestParam接受参数，加上@FormUrlEncoded
//    @FormUrlEncoded
    // 请求路径前不能加 /
    @GET("v1/getAllCategory")
    Call<Category> getAllCategory();

    /**
     * 获取鲜花类型
     *
     * @param params map类型的参数提交
     * @return 返回一个 Flowers的鲜花类型
     */
    @FormUrlEncoded
    @GET("v1/getFlowers")
    Call<Flowers> getFlowers(@PartMap HashMap<String, Object> params);

    /**
     * 获取订单数据
     *
     * @param params map类型的参数提交
     * @return 返回一个 SalesRecord的订单数据
     */
    @FormUrlEncoded
    @GET("v1/getSalesRecord")
    Call<SalesRecord> getSalesRecord(@PartMap HashMap<String, Object> params);

    /**
     * 添加一条订单数据
     *
     * @param params map类型的参数提交
     * @return 返回一个 BaseResult 的实体
     */
    @FormUrlEncoded
    @POST("v1/getSalesRecord")
    Call<BaseResult> addSalesRecord(@PartMap HashMap<String, Object> params);

    /**
     * 修改一条订单数据
     *
     * @param params map类型的参数提交
     * @return 返回一个 BaseResult 的实体
     */
    @FormUrlEncoded
    @PUT("v1/updateSalesRecord")
    Call<BaseResult> updateSalesRecord(@PartMap HashMap<String, Object> params);

    /**
     * 删除一条订单数据
     *
     * @param sId 提交订单id
     * @return 返回一个 BaseResult 的实体
     */
    @FormUrlEncoded
    @DELETE("v1/deleteSalesRecord")
    Call<BaseResult> deleteSalesRecord(@Field("sId") int sId);


}
